
import hashlib
import os
from typing import Optional

"""将字符串转换为 MD5 哈希值"""
def convert_md5(input_string) -> str:
    # 创建一个 md5 对象
    md5_hash = hashlib.md5()
    # 更新数据（需要编码为字节）
    md5_hash.update(input_string.encode('utf-8'))
    # 获取十六进制表示的哈希值
    return md5_hash.hexdigest()


"""保存文本到文件"""
def save_text_to_file(path: str, data):
    file_dir = os.path.dirname(path)
    if not os.path.exists(file_dir) or not os.path.isdir(file_dir):
        os.makedirs(file_dir)
    f2 = open(path, 'w', encoding='utf-8')
    try:
        f2.write(str(data))
    finally:
        f2.close()

"""保存二进制到文件"""
def save_byte_to_file(path: str, data):
    file_dir = os.path.dirname(path)
    if not os.path.exists(file_dir) or not os.path.isdir(file_dir):
        os.makedirs(file_dir)

    f2 = open(path, 'wb')
    try:
        f2.write(data)
    finally:
        f2.close()

"""从文件中加载文本"""
def load_text_from_file(path) -> Optional[str]:
    if not os.path.exists(path):
        return None
    with open(path, 'r',encoding='utf-8') as file:
        return file.read()

"""从文件中加载二进制"""
def load_byte_from_file(path) -> Optional[bytes]:
    if not os.path.exists(path):
        return None
    with open(path, 'rb') as file:
        return file.read()
